package com.negocio.entidades;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Id;

import org.hibernate.validator.Min;

@Entity
public class Questao implements Serializable {
	@Id
	private int id;
	
	@Column(nullable=false)
	private String descricao;
	
	@Column(nullable=true)
	private String opcoes;
	
	@Enumerated(EnumType.STRING)
	@Column(nullable=false)
	private TipoQuestao tipo;
	
	@Column(nullable=true)
	private String respostaCorreta;
	
	@Min(0)
	@Column(nullable=false)
	private int nivelDificuldade;
	
	
	@Column(nullable=false)
	private String temas;


	public int getId() {
		return id;
	}


	public void setId(int id) {
		this.id = id;
	}


	public String getDescricao() {
		return descricao;
	}


	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}


	public String getOpcoes() {
		return opcoes;
	}


	public void setOpcoes(String opcoes) {
		this.opcoes = opcoes;
	}


	public TipoQuestao getTipo() {
		return tipo;
	}


	public void setTipo(TipoQuestao tipo) {
		this.tipo = tipo;
	}


	public String getRespostaCorreta() {
		return respostaCorreta;
	}


	public void setRespostaCorreta(String respostaCorreta) {
		this.respostaCorreta = respostaCorreta;
	}


	public int getNivelDificuldade() {
		return nivelDificuldade;
	}


	public void setNivelDificuldade(int nivelDificuldade) {
		this.nivelDificuldade = nivelDificuldade;
	}


	public String getTemas() {
		return temas.toString();
	}


	public void setTema(String temas) {
		this.temas = temas;
	}

	@Override
	public boolean equals(Object q){
		if(q instanceof Questao){
			final Questao qOutro = (Questao) q;
			return (qOutro.getDescricao().equals(this.descricao) && qOutro.getOpcoes().equals(this.opcoes) && qOutro.getRespostaCorreta().equals(this.respostaCorreta));
		}
		return true;
	}
	
	
	@Override
	public int hashCode(){
		return this.hashCode();
	}
}
